#把数据和功能结合起来，用称之为对象的东西包裹起来组织程序的方法。
#这种方法称为面向对象的编程理念。

class LoginCheck():
    # 登录数据
    username = "root"
    passwd = "123456"

    # 登录功能
    def login(self,username, passwd):
       if username == "root" and passwd == "123456":
           return True
       else:
           return False

# 面向对象的基本概念
#python 里面一切皆对象。

#类（基类、子类）
#类（class）：
#用来描述具有相同属性和方法的对象的集合。

#车  可以看做一个类
#特征： 有轮子， 有车牌
#方法： 会跑

#基类/子类
#车（基类） / 摩托车、大卡车(子类)
#摩托车 -- 2-3个轮子
#大卡车 -- 至少6个轮子
#公交车 -- 载人

#对象
#实例：具体的某个事物，某个类型实实在在的一个例子
#某个实实在在的公交车， -- 对象/实例

#类的实例化
#通过类创建一个具体的实例，类的具体对象
#类就是一个生产实例的工厂

#实例化
# #lg1就是对象
# lg1 = LoginCheck()
# #谁去干活  -- 实例
# print(lg1.login("root1","123456"))

#面向对象和面向过程
#面向过程是一件事“该怎么做”，着重于做什么
#  面向过程 = 分析问题 + 逻辑

#ATM机的存取款功能
#ATM角色 50000
#用户角色 5000
#1、先登录
#   根据用户登录
#2、菜单界面
#   1、取款
#      用户的账户金额就减少了500
#   2、存款
#      用户的账户金额就增加了500块
#   3、查询
#      用户的账户金额显示

atm = 50000
# user = {"root":123456}
# balance = {"root":5000}
user_dict = {"root":{"passwd":"123456","balance":5000},"admin":{"passwd":"admin","balance":7000}}

#通过u获取passwd
#再比较user获取到的passwd和传进来的passwd是否一致
def login(username, passwd):
    if username in user_dict and user_dict[username]["passwd"] == passwd:
        return True

def get_money(money,user):
    #判断余额是否足够
    # atm余额 用户余额
    global atm
    if money <= user_dict[user]["balance"] and money<= atm:
        atm -= money
        user_dict[user]["balance"] -= money
    else:
        print("余额不足")




user = input("请输入用户名:")
passwd = input("请输入密码:")

if login(user, passwd):
    print("welcom to sc atm")
    while True:
        print("1、取款\n2、存款\n3、查询\n4、退出")
        choose = input("请输入你的选择")
        if choose == "1":
            money = int(input("请输入你的取款金额:"))
            get_money(money,user)

#面向对象是一件事“该让谁来做”，着重于谁去做
#   设计类   -- 先抽象再具体
object
Grandpa
Person 类
person.xx